using System;
using System.Collections.Generic;
using System.Text;

namespace EuropeEngulfed.NET
{
    class EliteInfantryBlock : Block
    {
        public override BlockType getBlockType()
        {
            return BlockType.eliteInfantry;
        }

        public EliteInfantryBlock(MapInfo.CountryID countryOwner, uint maxStrength) : base(countryOwner, maxStrength) { }

        public override Block Copy()
        {
            EliteInfantryBlock eliteArmorBlockCopy = new EliteInfantryBlock(this.countryOwner, this.MaxStrength);
            eliteArmorBlockCopy.CurrentStrength = this.CurrentStrength;
            eliteArmorBlockCopy.OutOfSupplyState = this.OutOfSupplyState;
            return (Block)eliteArmorBlockCopy;
        }

        public override bool Equals(PlayingPiece playingPiece)
        {
            if (playingPiece is EliteInfantryBlock)
            {
                if (this.CountryOwner == playingPiece.CountryOwner)
                    if (this.MaxStrength == ((EliteInfantryBlock)playingPiece).MaxStrength)
                        if (this.CurrentStrength == ((EliteInfantryBlock)playingPiece).CurrentStrength)
                            if (this.OutOfSupply == ((EliteInfantryBlock)playingPiece).OutOfSupply)
                                return true;
            }

            return false;
        }

        public override string GetDescription()
        {
            return MaxStrength + "-step Elite Infantry";
        }

        public override bool CanDoDoubleMovement()
        {
            return false;
        }
    }
}
